home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / Anwendun / LUNA152A / MODULE / DEVELOP.TXT < prev    next >
Encoding:
Text File  |  1999-11-08  |  2.7 KB  |  62 lines

  1.  
  2.  Modulspezifikation zum einfachen Filtermodul von Luna.
  3.  ------------------------------------------------------------------------------
  4.  
  5.  Rückgabeparameter in D0, Register d0-d7 und a0-a2 dürfen verändert werden.
  6.  Das Filtermodul bleibt wärend der Blockbearbeitung im Speicher und wird
  7.  vor Beginn der Filterung einmal zur Initialisierung, dann für jede 
  8.  Zeile des zu filternden Blockes und nach Filterung einmal zur 
  9.  Deinitialisierung aufgerufen.
  10.  
  11.  - Ein Luna-Filtermodul trägt die Dateiextension "FM" bzw. "fm".
  12.  - Das Modul wird von Luna direkt geladen und angesprungen (direkt ans Textsegment,
  13.    ohne pexec()-Modi, ohne Relozierung).
  14.  - Die Parameterübergabe erfolgt über den Stack.
  15.  - Das Modul ist eine normale Programmdatei mit dem 28 Byte langen Header.
  16.  
  17.  Möchte ein solches Modul die Zeilenlänge ändern (z.Bsp. durch ersetzen
  18.  einer Zeichenkette durch eine Andere), dann ist der Luna-Arbeitspuffer
  19.  zu verwenden, dessen Adresse ebenfalls übergeben wird.
  20.  
  21.  Eine Ggf. geänderte Zeichenkette (Nullterminiert) wird von Luna aus dem 
  22.  Arbeitspuffer ausgelesen und dann entsprechend der Blockmarkierungen die 
  23.  Zeile im markierten Text geändert.
  24.  Um Luna mitzuteilen, daß sich eine gänderte Zeichenkette im Arbeitspuffer 
  25.  befindet, ist nach Filterung eine 1 zurückzuliefern, ansonsten Null. 
  26.  
  27.  
  28.  ------------------------------------------------------------------------------
  29.  Aufgerufen wird das Modul immer mit folgenden Grundparametern:
  30.  ------------------------------------------------------------------------------
  31. a:        4(sp)    word    Funktionsnummer.
  32. b:        6(sp)    long    Adresse des zu bearbeitenden Strings.
  33. c:        10(sp)    long    Adresse des Arbeitspuffers.
  34. d:        14(sp)    word    Länge des zu bearbeitenden Strings.
  35. e:        16(sp)    word    Länge des Arbeitspuffers (das ist immer die maximale
  36.                         im Text vorkommende Zeilenlänge*4).
  37.  
  38.  Die Werte 'b' und 'd' sind nur bei Funktionsnummer 0 gültig.
  39.  
  40.  ------------------------------------------------------------------------------
  41.  Die bisher möglichen Funktionsnummern:
  42.  ------------------------------------------------------------------------------
  43.         0 = Filterfunktion ausführen.
  44.         1 = Zeiger auf Infotext (siehe unten) zurückliefern.
  45.             es ist ein Zeiger auf den Infotext in D0 zurückzugeben
  46.         2 = Initialisierung des Moduls
  47.             es ist Null (OK), oder ein Errorcode zurückzuliefern
  48.           3 = Deinitialisierung des Moduls
  49.             es ist Null (OK), oder ein Errorcode zurückzuliefern
  50.  
  51.  ------------------------------------------------------------------------------
  52.  bisherige Exitcodes(long):
  53.  ------------------------------------------------------------------------------
  54.            0 : OK
  55.            1 : Neuer String im Arbeitspuffer (Nullterminiert).
  56.          -32 : ungültige Funktionsnummer
  57.           <0 : TOS-Fehlermeldungen
  58.           
  59.  
  60.  
  61.  
  62.